#ifndef BROADCAST_H
#define BROADCAST_H
#include "config.h"

typedef struct Client Client;

//获取在线用户列表
//buffer：指向字符数组的指针，用于存储在线用户列表的字符串
//clients：指向Client结构体数组的指针，用于存储所有已认证的客户端信息
void get_online_users(char *buffer, Client *clients);

//广播消息
//sender_name：指向发送消息的客户端用户名的字符串指针
//message：指向要发送的消息内容的字符串指针
//sender_socket：发送消息的客户端套接字
//is_private：表示消息是否为私聊消息，0 表示非私聊消息，1 表示私聊消息
//clients：指向Client结构体数组的指针，用于存储所有已认证的客户端信息   
void broadcast_message(char *sender_name, char *message, int sender_socket, 
                      int is_private, Client *clients);
//发送私聊消息
//sender_name：指向发送消息的客户端用户名的字符串指针
//target_name：指向目标客户端用户名的字符串指针
//message：指向要发送的消息内容的字符串指针
//clients：指向Client结构体数组的指针，用于存储所有已认证的客户端信息
void send_private_message(char *sender_name, char *target_name, 
                         char *message, Client *clients);

#endif